Computer systems often include memory management features that provide memory protection. The memory management features may restrict particular processes from accessing particular portions of memory. The restriction may be enforced using a combination of hardware features and kernel features that work together to enable or restrict an executing process from accessing memory resources. The memory resources are often separated into user space and kernel space and when a user space process attempts to access memory resources in kernel space the memory management features may generate a segmentation fault. The segmentation fault may indicate that an access violation occurred so that it can be handled accordingly. Device drivers typically execute in kernel space and rely on the memory management features to protect memory associated with the device driver from being accessed by user space processes.